package com.sicau.smarttraceplatform.entity.vo.collectingdata;

import com.baomidou.mybatisplus.annotation.TableName;
import com.sicau.smarttraceplatform.entity.vo.PageDataVO;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.time.LocalDate;
import java.time.LocalDateTime;

/**
 * <p>
 * 采集数据查询返回对象
 * </p>
 *
 * @author sxt && ttxxi
 * @since 2020-05-24
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@ApiModel("采集数据查询返回对象")
@AllArgsConstructor
public class CollectingDataVO implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 农场数据详情
     */
    @ApiModelProperty("农场数据详情")
    private TraceInfo traceInfo;

    /**
     * 采集数据集合
     */
    @ApiModelProperty("采集数据集合")
    private PageDataVO<CollectingDataInfo> collectingDataInfos;



    @Data
    @EqualsAndHashCode(callSuper = false)
    @Accessors(chain = true)
    @ApiModel("农场数据详情")
    public static class TraceInfo{

        /**
         * 溯源id
         */
        @ApiModelProperty("溯源id")
        private String traceId;


        /**
         * 地块ID
         */
        @ApiModelProperty("地块ID")
        private String landParcelId;

        /**
         * 种植开始时间
         */
        @ApiModelProperty("种植开始时间")
        private LocalDate plantStartTime;

        /**
         * 种植结束时间
         */
        @ApiModelProperty("种植结束时间")
        private LocalDate plantEndTime;

        /**
         * 负责人姓名
         */
        @ApiModelProperty("负责人姓名")
        private String userName;


    }

    @Data
    @EqualsAndHashCode(callSuper = false)
    @Accessors(chain = true)
    @ApiModel("单条采集数据")
    @TableName("collecting_data")
    public static class CollectingDataInfo{
        /**
         * 采集日期
         */
        @ApiModelProperty("采集日期")
        private LocalDateTime collectionTime;

        /**
         * 光照  lux
         */
        @ApiModelProperty("光照  lux")
        private String illumination;

        /**
         * 温度  ℃
         */
        @ApiModelProperty("温度  ℃")
        private String temperature;

        /**
         * 湿度  %
         */
        @ApiModelProperty("湿度  %")
        private String humidity;

        /**
         * 风速 m/s
         */
        @ApiModelProperty("风速 m/s")
        private String windSpeed;

        /**
         * 大气压  hpa
         */
        @ApiModelProperty("大气压  hpa")
        private String atmosphere;

        /**
         * 雨量 mm/h
         */
        @ApiModelProperty("雨量 mm/h")
        private String rainfall;

        /**
         * 溯源Id
         */
        @ApiModelProperty("溯源id")
        private String traceId;
    }

}
